$(function () {
    var empDatagrid, empDatagridEditAndDel, empDialog, empForm, empFormId;
    empDatagrid = $("#emp_datagrid");
    empDatagridEditAndDel = $("#emp_datagrid_edit,#emp_datagrid_del");
    empDialog = $("#emp_dialog");
    empForm = $("#emp_form");
    empFormId = $("#emp_form [name='id']");
    //1.抽取方法
    //2.将所有的方法统一的管理
    //3.对所有按钮统一的监听
    empDatagrid.datagrid({
        fit: true,
        url: '/employee_list',
        fitColumns: true,
        rownumbers: true,
        pagination: true,
        toolbar: '#emp_datagrid_tb',
        pageList: [1, 10, 20, 30, 40, 50],
        singleSelect: true,
        onClickRow: function (rowIndex, rowData) {
            if (rowData.state) {
                empDatagridEditAndDel.linkbutton("enable");
            } else {
                //把按钮禁用
                // $("#emp_datagrid_tb a").eq(1).linkbutton("disable");
                empDatagridEditAndDel.linkbutton("disable");
            }
        },
        columns: [
            [
                {field: 'username', align: 'center', title: '用户名', width: 1},
                {field: 'realname', align: 'center', title: '真实姓名', width: 1},
                {field: 'tel', align: 'center', title: '电话', width: 1},
                {field: 'email', align: 'center', title: '邮箱', width: 1},
                {field: 'dept', align: 'center', title: '部门', width: 1, formatter: deptFormatter},
                {field: 'inputtime', align: 'center', title: '入职时间', width: 1},
                {field: 'state', align: 'center', title: '状态', width: 1, formatter: stateFormatter},
                {field: 'admin', align: 'center', title: '是否是超级管理员', width: 1, formatter: adminFormatter}
            ]
        ]
    });

    empDialog.dialog({
        width: 260,
        height: 380,
        buttons: "#emp_dialog_tt",
        closed: true
    });


    //统一方法管理
    var cmdObj = {
        add: function () {
            empDialog.dialog("open");
            empDialog.dialog("setTitle", "新增");
            empForm.form("clear");
        },

        save: function () {
            var idVal = empFormId.val();
            var url;
            if (idVal) {
                url = "/employee_update";
            } else {
                url = "/employee_save";
            }
            //发送异步请求
            empForm.form("submit", {
                url: url,
                success: function (data) {
                    data = $.parseJSON(data);
                    if (data.success) {
                        $.messager.alert("温馨提示", data.msg, "info", function () {
                            //关闭对话框
                            empDialog.dialog("close");
                            //刷新数据表格
                            empDatagrid.datagrid("load");
                        });

                    } else {
                        $.messager.alert("温馨提示", data.msg, "info");
                    }
                }
            });
        },

        edit: function () {
            //获取选中的数据
            var rowData = empDatagrid.datagrid("getSelected");
            if (rowData) {
                empDialog.dialog("open");
                empDialog.dialog("setTitle", "编辑");
                empForm.form("clear");
                // console.log(rowData);
                //特殊属性的处理
                if (rowData.dept) {
                    rowData["dept.id"] = rowData.dept.id;
                }
                empForm.form("load", rowData);
            } else {
                $.messager.alert("温馨提示", "请选择一条需要编辑的数据.", "info");
            }
        },

        del: function () {
            var rowData = empDatagrid.datagrid("getSelected");
            if (rowData) {
                $.messager.confirm("温馨提示", "您确定需要删除这条数据吗？", function (yes) {
                    if (yes) {
                        $.get("/employee_delete?id=" + rowData.id, function (data) {
                            if (data.success) {
                                $.messager.alert("温馨提示", data.msg, "info", function () {
                                    //刷新数据表格
                                    empDatagrid.datagrid("reload");
                                });
                            } else {
                                $.messager.alert("温馨提示", data.msg, "info");
                            }
                        }, "json");
                    }
                });
            } else {
                $.messager.alert("温馨提示", "请选择需要离职的员工.", "info");
            }
        },

        reload: function () {
            empDatagrid.datagrid("reload");
        },

        cancel: function () {
            empDialog.dialog("close");
        },

        searchBtn: function () {
            var value = $("[name='keyWord']").val();
            empDatagrid.datagrid("load", {
                keyWord: value
            });
        }
    };
    //对所有的按钮进行监听
    $("a[data-cmd]").on("click",function () {
        var cmd=$(this).data("cmd");
        if (cmd){
            cmdObj[cmd]();
        }
        // if (cmd='add'){
        //     // cmdObj.add();
        //     // cmdObj["add"]();
        // }
    });
});

function deptFormatter(value, record, index) {
    return value ? value.name : "";
}

function stateFormatter(value, record, index) {
    if (value) {
        return "<font color='green'>正常</font>";
    } else {
        return "<font color='red'>离职</font>";
    }
}

function adminFormatter(value, record, index) {
    if (value) {
        return "是";
    } else {
        return "否";
    }
}

